<?php
fopen("路径","模式");	//打开指定路径为资源
feof();		//检测是否已到达文件末尾为真假
fread($变量名,文件长度); 	//二进制读取文件最大8192
判断条件中的【！】有取反作用

面向对象:

定义类:
class ClassName{		//声明类
	function __construct(){	//构造函数:诞生时即执行

	}

	public $attribute;	//定义属性

	function phunction(){	//定义方法
		$this->attribute;	//调用本类属性
	}

	function __destruct(){	//析构函数:销毁时即执行

	}
}

$cl1=new ClassName();		//实例化

class Cl2 extends ClassName{	//继承

	parent::$attribute;	//父类属性调用
	parent::phunction();	//父类方法调用

	// function phunction(){
	//重名将会覆盖
	// }
	function __toString(){	//魔术方法:直接打印
		return "xx";
	}
}

Cl2::$xxx;	//免实例化直接调用类成员

测试函数:
get_class(对象名);		//获取对象的类
get_parent_class(对象名);	//获取对象的父类
get_class_vars(类名);	//获取类的属性 返回数组
get_object_vars(对象名);	//获取对象的属性 返回数组
get_class_methods(对象名||类名);	//获取对象或类的方法 返回数组
class_exists()	//测试类是否存在
method_exists(对象名||类名,方法名)		//测试对象或类的方法是否存在 返回布尔
property_exists(对象名||类名,属性名)		//测试对象或类的属性是否存在 返回布尔 不带$
is_object(对象名)	//测试是否为对象 返回布尔
对象名 instanceof 类名	//测试对象是否为类实例化出的 返回布尔

封装:
public 		//所有类均可使用
protected 	//只有本类和子类可以使用
private 		//只有本类可以使用

抽象类:		//含有抽象方法的类
abstract class Per{
	abstract function fun1();	//只声明 等待被子类实现
}

接口:		//只含有抽象方法的类
interface Per{
	function fun1();			//必须被子类实现
}
	
class Chil implements Per{		//继承使用关键字[implements]

}

多态:
function Crea(Per $obj){		//必须集成Per父类才能被传入

}

自动加载类:
function __autoload($className){
	include($className."xxx.php");
}

self 	//代表本类

关键字:
const 	//常量
类外:Per::HOST;
类内:self->HOST;
static 	//静态变量
final 	//类 不可继承 方法 不可被覆盖

对象克隆:
对象赋值给对象时 加 clone 生成新的对象

魔术方法:
__call()	//当调用不存在方法时 获得方法名和一个参数数组
__clone() //当对象克隆时触发
__get()	//外部调用私有属性时触发
__set()	//外部给私有属性赋值时触发
__isset()//对私有属性做isset()时触发
__unset()//对私有属性做unset()时触发
?>